import request from '@/config/axios'

// 用户活跃度统计 VO
export interface UserActivityStatsVO {
  id: number // 主键ID
  statDate: Date // 统计日期
  statType: number // 统计类型：1-日活跃(DAU)，2-周活跃(WAU)，3-月活跃(MAU)
  totalUsers: number // 总用户数
  activeUsers: number // 活跃用户数
  newUsers: number // 新增用户数
  returningUsers: number // 回访用户数
  activityRate: number // 活跃率（%）
  loginUsers: number // 登录用户数
  loginTimes: number // 总登录次数
  avgLoginTimes: number // 平均登录次数
  adminActiveUsers: number // 管理员活跃用户数
  memberActiveUsers: number // 会员活跃用户数
  pcUsers: number // PC端用户数
  mobileUsers: number // 移动端用户数
  webUsers: number // Web端用户数
  morningUsers: number // 上午活跃用户数(6-12)
  afternoonUsers: number // 下午活跃用户数(12-18)
  eveningUsers: number // 晚上活跃用户数(18-24)
  nightUsers: number // 深夜活跃用户数(0-6)
  topRegion1: string // 活跃度最高地区1
  topRegion1Users: number // 地区1用户数
  topRegion2: string // 活跃度最高地区2
  topRegion2Users: number // 地区2用户数
  topRegion3: string // 活跃度最高地区3
  topRegion3Users: number // 地区3用户数
  consecutive1Day: number // 连续1天活跃用户数
  consecutive3Days: number // 连续3天活跃用户数
  consecutive7Days: number // 连续7天活跃用户数
  consecutive15Days: number // 连续15天活跃用户数
  consecutive30Days: number // 连续30天活跃用户数
  calculationStatus: number // 计算状态：0-待计算，1-计算中，2-已完成，3-计算失败
  calculationStartTime: Date // 计算开始时间
  calculationEndTime: Date // 计算结束时间
  calculationDuration: number // 计算耗时（秒）
  errorMessage: string // 错误信息
}

// 用户活跃度统计 API
export const UserActivityStatsApi = {
  // 查询用户活跃度统计分页
  getUserActivityStatsPage: async (params: any) => {
    return await request.get({ url: `/system/user-activity-stats/page`, params })
  },

  // 查询用户活跃度统计详情
  getUserActivityStats: async (id: number) => {
    return await request.get({ url: `/system/user-activity-stats/get?id=` + id })
  },

  // 新增用户活跃度统计
  createUserActivityStats: async (data: UserActivityStatsVO) => {
    return await request.post({ url: `/system/user-activity-stats/create`, data })
  },

  // 修改用户活跃度统计
  updateUserActivityStats: async (data: UserActivityStatsVO) => {
    return await request.put({ url: `/system/user-activity-stats/update`, data })
  },

  // 删除用户活跃度统计
  deleteUserActivityStats: async (id: number) => {
    return await request.delete({ url: `/system/user-activity-stats/delete?id=` + id })
  },

  // 导出用户活跃度统计 Excel
  exportUserActivityStats: async (params) => {
    return await request.download({ url: `/system/user-activity-stats/export-excel`, params })
  },
}